package org.sdsc.crms.service.security;

import org.sdsc.crms.dao.UserDao;
import org.sdsc.crms.entity.security.User;
import org.sdsc.crms.service.EntityManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * 用户管理类.
 * 
 * 实现领域对象用户的所有业务管理函数.
 * 
 * 通过泛型声明继承EntityManager,默认拥有CRUD管理方法. 使用Spring annotation定义事务管理.
 * 
 * @author helin
 */
// Spring Service Bean的标识.
@Service
// 默认将类中的所有函数纳入事务管理.
@Transactional
public class UserManager extends EntityManager<User, Long> {

	@Autowired
	private UserDao userDao;

	@Override
	protected UserDao getEntityDao() {
		return userDao;
	}

	public boolean isLoginNameUnique(String loginName, String oldLoginName) {
		return userDao.isPropertyUnique("loginName", loginName, oldLoginName);
	}

}
